package com.ansion.basedb.dao;

/***
 *
 * @author john 2022/4/20
 * 用于同步数据表加载状态，在查询dao的时候提前预判，减少后台线程开启
 *
 * @desc 这里用volatile解决多线程下状态不同步的问题。
 * 需要注意注意的是CPU在拿指令的时候是串行的，不存在不同的CPU核心同时取指令执行。
 * 不同的CPU核心只是会同时执行拿到的指令（耗时操作）。
 * 只有在这个前提下，volatile的内存屏障才能起作用。保证对volatile域下内存操作是串行的。
 * LoadLoad,StoreStore,LoadStore,StoreLoad
 */
public class DaoLoadHelper {
    public static volatile boolean silentDaoLoadFinish = false;
    public static volatile boolean userDaoLoadFinish = false;
    public static volatile boolean groupDaoLoadFinish = false;
    public static volatile boolean sessionDaoLoadFinish = false;
    public static volatile boolean sessionNewDaoLoadFinish = false;
    public static volatile boolean callLogDaoLoadFinish = false;
    public static volatile boolean contactsDaoLoadFinish = false;
    public static volatile boolean blockDaoLoadFinish = false;
    public static volatile boolean lastSeenLoadFinish = false;
    public static volatile boolean oaLoadFinish = false;
    public static volatile boolean permissionsFinish = false;

    public static volatile boolean demoDaoLoadFinish = false;

    //是否支持sqlcipher
    public static volatile boolean sqlcipherEnable = false;

}
